package com.keke.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.View;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.util.Locale;

/**
 * @ClassName: MyMvcConfig
 * @Description:
 * @Author: zhangjin
 * @Date: 2021/9/23
 */
//如果你想diy一些定制化的功能，只需要写这个组件，然后将它交给springboot，springboot就会进行为自动装配
//扩展 springmvc 官方建议我们这样做    dispatchservlet的doDispatch方法可以查看自己配置的视图解析器
@Configuration
//@EnableWebMvc //这个就是导入一个类 DelegatingWebMvcConfiguration.class，从容器中获取所有的webmvcconfig，
//添加这个注解就会使得WebMvcAutoConfiguration这个类失效
public class MyMvcConfig implements WebMvcConfigurer {

    //ViewResolver 实现了视图解析器接口的类，就可以看作一个视图解析器

    //将自定义的视图解析器放入ioc容器中
    @Bean
    public ViewResolver getMyViewResolver() {
        return new MyViewResolver();
    }

    //自定义一个视图解析器
    public static class MyViewResolver implements ViewResolver {
        @Override
        public View resolveViewName(String s, Locale locale) throws Exception {
            return null;
        }
    }

    //自定义视图跳转
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        //访问keke都会跳转到test
        registry.addViewController("/keke").setViewName("test");
    }
}
